package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.ProductBean;

/**
 * 商品业务接口
 */
public interface IProductService {

    /**
     * 添加商品,操作（隐藏表单 add/update）
     * 判断操作的值，如果是update，那么，判断该采购车中是否存在该商品，
     * 如果存在，修改采购车中的采购数量（累加），
     * 如果不存在，则新增采购车中的采购商品。
     *
     * @param product 产品对象
     */
    public void add(ProductBean product);

    /**动态分页查询商品        库存一览、添加出库商品
     * @param pageNO     页码
     * @param name       商品名称
     * @param startPrice 起始数量
     * @param endPrice   结束数量
     * @param salePrice  是否定销售价(不限/未定销售价)
     * @param type       类型
     * @return 商品分页对象
     */
    public IPage<ProductBean> findByItem(Integer pageNO, String name, Integer startPrice,
                                         Integer endPrice, String salePrice, String type);


    /**
     * 通过库存商品id查询库存商品对象
     *
     * @param id 库存商品id
     * @return 库存商品对象
     */
    public ProductBean findById(Integer id);

    /**
     * 通过库存id修改销售价格
     *
     * @param id           商品id
     * @param newSalePrice 新销售价
     */
    public void updateSalePrice(Integer id, Integer newSalePrice);

    /**
     * 入库/出库的累加/累减
     * @param productId 商品id
     * @param Price  待修改价格
     * @param num    待修改数量
     * @param isInKu    入库/出库
     */
    public void updateNum(Integer productId, Integer Price, Integer num, String isInKu);

}
